package com.power.sifa.ocr.service;

import com.alibaba.fastjson.JSONObject;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 百度文字识别
 * 付费功能
 * https://console.bce.baidu.com/ai/?_=1695261808776#/ai/ocr/overview/index
 * https://cloud.baidu.com/doc/OCR/s/rk3h7xzck
 * @author wangning
 */
public interface OcrBaiduService {
	/**
	 * 识别身份证
	 * @param url: 本地路径或网络地址
	 * @param front: 是否正面
	 * @return
	 */
	JSONObject checkIdCard(String url, Boolean front);

	/**
	 *	图片文字识别
	 */
	String readImage(String url);

	/**
	 * 识别网络图片
	 *
	 * @param url
	 * @return
	 */
	String readUrl(String url);

	/**
	 * 识别PDF
	 *
	 * @param url
	 * @return
	 */
	String readPDF(String url);

	/**
	 * 文件转base64格式
	 *
	 * @param path
	 * @param urlEncode
	 * @return
	 * @throws IOException
	 */
	String getFileContentAsBase64(String path, boolean urlEncode) throws IOException;

	/**
	 * 根据base64识别文字
	 *
	 * @param fileBase64 base64的文本
	 * @param fileType 文件类型
	 * @return
	 */
	String readBase64(String fileBase64, String fileType);

	/**
	 * 识别文件类型
	 *
	 * @param filePath
	 * @return
	 */
	String detectFileType(String filePath);

	/**
	 * 识别上传文件
	 *
	 * @param file
	 * @return
	 */
	String readFile(MultipartFile file) throws Exception;

	String readByAttachmentid(String attachmentid) throws Exception;
}
